Programmable logic switches are included in field programmable gate arrays (FPGAs) in which logical operation circuits and wire circuits may need to be reconfigured, and switch ON and OFF logic switches based on data stored in memories. Volatile memories such as static random access memories (SRAMs) have been used as the aforementioned memories. The data stored in volatile memories are erased if the power is turned OFF. Therefore, data should be rewritten to the memories when the power is turned ON again.
Some methods are known in which nonvolatile flash memories are included in programmable logic switches. In an example of the above methods, the memory of a programmable logic switch includes cells each including two nonvolatile memory elements and one switching transistor (pass transistor). Flash memory elements, for example, are used as the nonvolatile memory elements. A power supply voltage or 0 V is applied to the gate the switching transistor via either of the two flash memory elements. A programmable logic switch with such a memory configuration has a smaller area than a programmable logic switch including SRAMs.
Other methods are also known in which anti-fuse elements are included in FPGAs. These methods electrically connect a plurality of wiring lines by changing the resistances of specific anti-fuse elements to lower values, thereby achieving various circuits.
Wiring lines in FPGAs of this type are connected or disconnected irreversibly. Thus, circuit information is not changed unexpectedly. This enables FPGAs of this type to be used in an environment where FPGAs with flash memories may not be used. However, basically the programming of logic information can be performed only once for the FPGAs of this type since the wiring lines once connected cannot be disconnected.